home *** CD-ROM | disk | FTP | other *** search
/ Windows News 2005 November / WNnov2005.iso / Windows / Equipement / hMailServer / hMailServer-4.1-Build-136.exe / {app} / PHPWebAdmin / include / minixml / minixml.inc.php
PHP Script  |  2004-10-25  |  6KB  |  136 lines

  1. <?php
  2. /***************************************************************************************************
  3. ****************************************************************************************************
  4. *****
  5. *****      MiniXML - PHP class library for generating and parsing XML.
  6. *****
  7. *****      Copyright (C) 2002,2003 Patrick Deegan, Psychogenic.com
  8. *****      All rights reserved.
  9. *****
  10. *****      http://minixml.psychogenic.com
  11. *****
  12. *****   This program is free software; you can redistribute
  13. *****   it and/or modify it under the terms of the GNU
  14. *****   General Public License as published by the Free
  15. *****   Software Foundation; either version 2 of the
  16. *****   License, or (at your option) any later version.
  17. *****
  18. *****   This program is distributed in the hope that it will
  19. *****   be useful, but WITHOUT ANY WARRANTY; without even
  20. *****   the implied warranty of MERCHANTABILITY or FITNESS
  21. *****   FOR A PARTICULAR PURPOSE.  See the GNU General
  22. *****   Public License for more details.
  23. *****
  24. *****   You should have received a copy of the GNU General
  25. *****   Public License along with this program; if not,
  26. *****   write to the Free Software Foundation, Inc., 675
  27. *****   Mass Ave, Cambridge, MA 02139, USA.
  28. *****
  29. *****
  30. *****   You may contact the author, Pat Deegan, through the
  31. *****   contact section at http://www.psychogenic.com
  32. *****
  33. *****   Much more information on using this API can be found on the
  34. *****   official MiniXML website - http://minixml.psychogenic.com
  35. *****    or within the Perl version (XML::Mini) available through CPAN
  36. *****
  37. ****************************************************************************************************
  38. ***************************************************************************************************/
  39.  
  40. /***************************************************************************************************
  41. ****************************************************************************************************
  42. *****
  43. *****                          CONFIGURATION
  44. *****
  45. *****  Please see the http://minixml.psychogenic.com website for details on these configuration
  46. *****  options.
  47. *****
  48. ****************************************************************************************************
  49. ***************************************************************************************************/
  50.  
  51.  
  52. /* All config options can be set to 0 (off) or 1 (on) */
  53.  
  54. define("MINIXML_CASESENSITIVE", 0); /* Set to 1 to use case sensitive element name comparisons */
  55. define("MINIXML_AUTOESCAPE_ENTITIES", 1); /* Set to 1 to autoescape stuff like > and < and & in text, 0 to turn it off */
  56. define("MINIXML_AUTOSETPARENT", 0); /* Set to 1 to automatically register parents elements with children */
  57. define("MINIXML_AVOIDLOOPS", 0); /* Set to 1 to set the default behavior of 'avoidLoops' to ON, 0 otherwise */
  58. define("MINIXML_IGNOREWHITESPACES", 1); /* Set to 1 to eliminate leading and trailing whitespaces from strings */
  59.  
  60. /* Lower/upper case attribute names.  Choose UPPER or LOWER or neither - not both... UPPER takes precedence */
  61. define("MINIXML_UPPERCASEATTRIBUTES", 0); /* Set to 1 to UPPERCASE all attributes, 0 otherwise */
  62. define("MINIXML_LOWERCASEATTRIBUTES", 0); /* Set to 1 to lowercase all attributes, 0 otherwise */
  63.  
  64. /* fromFile cache.
  65. ** If you are using lots of $xmlDoc->fromFile('path/to/file.xml') calls, it is possible to use
  66. ** a caching mechanism.  This cache will read the file, store a serialized version of the resulting
  67. ** object and read in the serialize object on subsequent calls.
  68. **
  69. ** If the original XML file is updated, the cache will automatically be refreshed.
  70. **
  71. ** To use caching, set MINIXML_USEFROMFILECACHING to 1 and set the
  72. ** MINIXML_FROMFILECACHEDIR to a suitable directory in which the cache files will
  73. ** be stored (eg, "/tmp")
  74. **/
  75. define("MINIXML_USEFROMFILECACHING", 0);
  76. define("MINIXML_FROMFILECACHEDIR", "/tmp");
  77. define("MINIXML_DEBUG", 0); /* Set Debug to 1 for more verbose output, 0 otherwise */
  78.  
  79. /*****************************************  end Configuration ***************************************/
  80.  
  81. define("MINIXML_USE_SIMPLE", 0);
  82. define("MINIXML_VERSION", "1.2.6"); /* Version information */
  83. define("MINIXML_NOWHITESPACES", -999); /* Flag that may be passed to the toString() methods */
  84. $MiniXMLLocation = dirname(__FILE__);
  85. define("MINIXML_CLASSDIR", "$MiniXMLLocation/classes");
  86. require_once(MINIXML_CLASSDIR . "/doc.inc.php");
  87.  
  88. /***************************************************************************************************
  89. ****************************************************************************************************
  90. *****
  91. *****                       Global Helper functions
  92. *****
  93. ****************************************************************************************************
  94. ***************************************************************************************************/
  95.  
  96. function _MiniXMLLog ($message)
  97. {
  98.     error_log("MiniXML LOG MESSAGE:\n$message\n");
  99. }
  100.  
  101. function _MiniXMLError ($message)
  102. {
  103.     //error_log("MiniXML ERROR:\n$message\n");
  104.  
  105.     return NULL;
  106. }
  107.  
  108. function _MiniXML_NumKeyArray (&$v)
  109. {
  110.     if (! is_array($v))
  111.     {
  112.         return NULL;
  113.     }
  114.  
  115.     $arrayKeys = array_keys($v);
  116.     $numKeys = count($arrayKeys);
  117.     $totalNumeric = 0;
  118.     for($i=0; $i<$numKeys; $i++)
  119.     {
  120.         if (is_numeric($arrayKeys[$i]) && $arrayKeys[$i] == $i)
  121.         {
  122.             $totalNumeric++;
  123.         } else {
  124.             return 0;
  125.         }
  126.     }
  127.  
  128.     if ($totalNumeric == $numKeys)
  129.     {
  130.         // All numeric - assume it is a "straight" array
  131.         return 1;
  132.     } else {
  133.         return 0;
  134.     }
  135. }
  136. ?>